/**********************************************************************************************/
/* FBL_Global_T.h 		                                                   					  */
/*                                                                       					  */
/* Copyright Paradigma, 1993-2006															  */
/* All Rights Reserved                                                   					  */
/**********************************************************************************************/

#ifndef _FBL_Global_T_h 
	#define _FBL_Global_T_h
#pragma once


/**********************************************************************************************/
FBL_Begin_Namespace


/**********************************************************************************************/
template<class T> 
void Swap( T& a, T& b )
{
	T tmp = a;
	a = b;
	b = tmp;
}


/**********************************************************************************************/
template <class T>
inline const T& Min(const T& a, const T& b)	{ return a < b ? a : b; }


/**********************************************************************************************/
template <class T>
inline const T& Max(const T& a, const T& b)	{ return a > b ? a : b; }


/**********************************************************************************************/
template<class T> 
void Fill( T* p1, T* p2, T c )
{
	while( p1 < p2 )
		*p1++ = c;
}


/**********************************************************************************************/
FBL_End_Namespace


/**********************************************************************************************/
#endif // _FBL_Types_h
